package navalgo3.Modelo;

import java.util.Random;

public class Posicion {

		private int fila;
		private int columna;
		private boolean estaOcupada;
		private Random random;
		
		public Posicion(int columna, int fila){
			this.fila = fila;
			this.columna = columna;
			this.estaOcupada = false;
		}
		
		public Posicion() {
			this.random = new Random();
			this.fila = this.random.nextInt(10)+1;
			this.columna = this.random.nextInt(10)+1;
			this.estaOcupada = false;
		}
		
		public Posicion posicionNorte(){
			int nuevaFila = this.fila -1;
			int nuevaColumna = this.columna;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionSur(){
			int nuevaFila = this.fila +1;
			int nuevaColumna = this.columna;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionEste(){
			int nuevaFila = this.fila;
			int nuevaColumna = this.columna +1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionOeste(){
			int nuevaFila = this.fila;
			int nuevaColumna = this.columna -1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionNoroeste(){
			int nuevaFila = this.fila -1;
			int nuevaColumna = this.columna -1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionNoreste(){
			int nuevaFila = this.fila -1;
			int nuevaColumna = this.columna +1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionSuroeste(){
			int nuevaFila = this.fila +1;
			int nuevaColumna = this.columna -1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public Posicion posicionSureste(){
			int nuevaFila = this.fila +1;
			int nuevaColumna = this.columna +1;
			return new Posicion(nuevaColumna,nuevaFila);
		}
		
		public boolean equals(Object otraPosicion){
			Posicion p = (Posicion)otraPosicion;
			return (this.fila == p.fila && this.columna == p.columna);
		}
		
		public boolean tocaBordeSuperior(){
			return (this.fila == 1);
		}
		
		public boolean tocaBordeInferior(){
			return (this.fila == 10);
		}
		
		public boolean tocaBordeIzquiero(){
			return (this.columna == 1);
		}
		public boolean tocaBordeDerecho(){
			return (this.columna == 10);
		}

		public int getColumna() {
			return this.columna;
		}
		
		public int getFila() {
			return this.fila;
		}

		public void setEstaOcupada(boolean b) {
			this.estaOcupada = b;
		}

		public boolean estaOcupada() {
			return this.estaOcupada;
		}

		public boolean posicionValida() {
			return((this.fila>=1 && this.fila<=10) && (this.columna>=1 && this.columna<=10));
		}



		
		
}
